package com.itheima.controller;

import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import com.itheima.pojo.Result;
import com.itheima.service.EmpServce;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDate;
import java.util.ArrayList;

/**
 *
 * LTAI5tKdJqMPak5Kir9X1nyG
 * nTYEdStqLep2CHtpzd5h1zQrL6ih8X
 *
 * @author :速趴赛亚锦
 * @date :2024/3/16 16:19
 */
@Slf4j
@RestController
@RequestMapping("/emps")
public class EmpController {
    @Autowired
    private EmpServce empServce;

    /**
    *
    * @author :速趴赛亚锦            -----【分页查询】
    * @create :2024/03/17 11:26
     * ==========================接收六个参数的完整分页查询
    */
    @GetMapping
    public Result page(String name , Short gender,
                       @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
                       @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end,
                       @RequestParam(defaultValue = "1") Integer page ,
                       @RequestParam(defaultValue = "10")Integer pageSize){
        log.info("当前查询的页码是什么："+page);
        log.info("当前查询的页码每页显示的条数是什么："+pageSize);
        log.info("条件参数 name gender begin end {},{},{},{}",name,gender,begin,end);
        PageBean pageBean = empServce.getPageBean(name,gender,begin,end,page,pageSize);//记得传上条数和页数
        return Result.success(pageBean);
    }

    /**
    *
    * @author :速趴赛亚锦 -----------------【批量删除操作】
    * @create :2024/03/17 13:50
    */
    @DeleteMapping("/{ids}")        //也可以用集合
    public Result delete(@PathVariable ArrayList<Integer> ids){
        log.info("删除的id是："+ids);
        empServce.delete(ids);//根据id删除
        return Result.success();
    }

    /**
    *------------------------------【新增员工】
    * @author :速趴赛亚锦
    * @create :2024/03/17 14:57
    */
    @PostMapping
    public Result add(@RequestBody Emp emp){
        log.info("新增的员工：{}",emp);
        empServce.add(emp);
        return Result.success();
    }
    /**
    * @author :速趴赛亚锦
    * @create :2024/03/17 15:12
     *
     * =============================【根据id回显数据和更新】
    */

    @GetMapping("/{id}")
    public Result findById (@PathVariable Integer id){
        log.info("回显示的id:{}",id);
        Emp byId = empServce.findById(id);
        return Result.success(byId);
    }
    /**
     *         根据Id回显完成----修改数据
     * @author :速趴赛亚锦
     * @create :2024/03/16 21:27
     */
    @PutMapping
    public Result update (@RequestBody Emp emp){
        log.info("需要修改的对象信息：{}",emp);
        empServce.update(emp);
        return Result.success();
    }

}
